Method for active fault tolerant control of turbofan engine control system

ABSTRACT

A method for active fault tolerant control of a turbofan engine control system designs a linear parameter varying gain scheduling robust tracking controller with good dynamic performance. Adaptive estimation of fault amplitude of a sensor and an actuator is realized according to the change of the operating state of the turbofan engine to accurately reconfigure a fault signal. An active fault tolerant control strategy based on a virtual actuator is designed according to a fault estimation result. Without redesigning the controller, through the designed active fault tolerant control strategy, on the premise of ensuring the stability of the control system, a control effect similar to that of the control system without fault is obtained.

TECHNICAL FIELD

The present invention relates to a method for active fault tolerant control of a turbofan engine control system, belongs to the technical field of air-craft control, and particularly relates to a method for fault estimation and active fault tolerant control for multi-concurrent faults of both actuators and sensors in a turbofan engine control system and in the presence of external disturbance.

BACKGROUND

The turbofan engine is widely used in commercial and military aero-crafts, and its safety and reliability are closely related to flight safety. The control system is used as the “brain” of the turbofan engine to ensure the safety and performance of the turbofan engine within a full flight envelope. The functions of the control system need to be realized depending on a large number of sensors and actuators. If some devices fail, it is difficult to realize desired control effects and the flight safety may be even affected. Therefore, it is of great significance to monitor the performance of the turbofan engine control system, estimate and warn the fault state in real time and take corresponding fault tolerant control measures.

The literature shows that the existing turbofan engine control system adopts fault diagnosis and passive fault tolerant control for the fault processing modes of the sensor and the actuator. That is, the control algorithm uses a control mode of a combination of PID and Min/Max switching. It is judged whether the sensor and the actuator of the control system fail according to the working condition of the turbofan engine, output rotary speed, temperature, pressure and other measurable parameters based on a Kalman filter. When a fault occurs, passive fault tolerant control based on hardware redundancy and control loop switching is further adopted. Although the existing methods can ensure the safe operation of the turbofan engine, the methods are conservative, which is mainly reflected in the following points: firstly, the PID+Min/Max control mode introduces undesirable characteristics in the aspects of control bandwidth, amplitude/phase margin and response speed of the aeroengine, and it is difficult to obtain faster dynamic response characteristics. Secondly, only the fault is detected, that is, if it is judged that a fault occurs, the fault is processed by a conservative passive fault tolerant control mode such as hardware redundancy or control loop switching. The hardware redundancy inevitably causes waste of hardware resources. The fault tolerant control based on controller switching is to ensure the safe operation of the aeroengine at the expense of some performance criteria. Finally, as the complexity of the turbofan engine control system is increased, the types and number of the faults are also increased. Therefore, the traditional passive fault tolerant control has great limitations, that is, all possible fault conditions need to be considered in advance, causing that the controller is conservative. It is worth mentioning that the turbofan control system is often disturbed by noise signals. The existing methods have no ideal solution for the fault tolerant control of the sensor and actuator faults of the turbofan engine control system in processing interference signals.

SUMMARY

In view of the problems that the existing fault diagnosis and fault tolerant control method of the sensor and the actuator of the turbofan engine control system is conservative and difficult to ensure the robustness of the control system under a disturbance environment, the present invention provides a method for active fault tolerant control of a turbofan engine control system. Firstly, a linear parameter varying (LPV) gain scheduling robust tracking controller with good dynamic performance is designed. Further, adaptive estimation of fault amplitude of the sensor and the actuator is realized according to the change of the operating state of the turbofan engine to accurately reconfigure a fault signal. Then, an active fault tolerant control strategy based on a virtual actuator is designed according to the fault estimation result. Without redesigning the controller, through the designed active fault tolerant control strategy, on the premise of ensuring the stability of the control system, a control effect similar to that of the control system without fault is obtained.

To achieve the above purpose, the technical solution adopted by the present invention comprises the following steps:

A method for active fault tolerant control of a turbofan engine control system comprises the following steps:

step 1: establishing a turbofan engine LPV model based on turbofan engine test experimental data:

$\begin{matrix} \left\{ \begin{matrix} {\overset{.}{x} = {{{A(\lambda)}x} + {{B(\lambda)}u_{c}} + {Ed}}} \\ {y = {{Cx} + {Gd}}} \end{matrix} \right. & (1) \end{matrix}$

wherein x∈R^(n) is a state variable u_(c)∈R^(m) is the control input of a turbofan engine; d∈R^(q) is a disturbance signal; output is y∈R^(p); the value of a scheduling parameter λ is a normalized relative conversion speed of high pressure rotors of the turbofan engine; λ_(min)≤λ≤λ_(max); λ_(min) and λ_(max) are respectively a minimum value and a maximum value of the scheduling parameter; system matrices are A(λ)∈R^(n×n), B(λ)∈R^(n×m), C∈R^(n×m), E∈R^(n×q), G∈R^(p×q); R^((⋅)) represents a (⋅)-dimensional real column vector; and R^(a×b) represents a a×b-dimensional real matrix;

step 2: designing a LPV gain scheduling robust tracking controller for the turbofan engine LPV model with disturbance;

step 2.1: introducing a new state variable x_(e), defined as

x _(e)=∫₀ ^(i) e(s)ds=∫ ₀ ^(i)(y(s)−y _(r)(s))ds  (2)

wherein e(⋅) is a tracking error and y_(r(⋅)) is a desired tracking signal: rewriting formula (1) into a formula (3) of a generalized form

$\begin{matrix} \left\{ {{{\begin{matrix} {\overset{.}{\overset{\_}{x}} = {{{\overset{\_}{A}(\lambda)}\overset{\_}{x}} + {{\overset{\_}{B}}_{1}\overset{\_}{w}} + {{{\overset{\_}{B}}_{2}(\lambda)}u_{c}}}} \\ {\overset{\_}{z} = {{{\overset{\_}{C}}_{1}\overset{\_}{x}} + {{\overset{\_}{D}}_{11}\overset{\_}{w}}}} \end{matrix}{wherein}\mspace{14mu} \overset{\_}{x}} = \begin{bmatrix} x \\ x_{e} \end{bmatrix}},{\overset{\_}{w} = \begin{bmatrix} d \\ y_{r} \end{bmatrix}},{\overset{\_}{z} = \begin{bmatrix} e \\ x_{e} \end{bmatrix}},{{\overset{\_}{A}(\lambda)} = \begin{bmatrix} {A(\lambda)} & 0 \\ C & 0 \end{bmatrix}},{{\overset{\_}{B}}_{1} = \begin{bmatrix} E & 0 \\ G & {- I} \end{bmatrix}},{{{\overset{\_}{B}}_{2}(\lambda)} = \begin{bmatrix} {B(\lambda)} \\ 0 \end{bmatrix}},{{{\overset{\_}{C}}_{1} = {{\begin{bmatrix} C & 0 \\ 0 & I \end{bmatrix}\mspace{14mu} {and}\mspace{14mu} D_{11}} = \begin{bmatrix} G & {- I} \\ 0 & 0 \end{bmatrix}}};}} \right. & (3) \end{matrix}$

step 2.2: for the formula (3), constructing and solving the following linear matrix inequalities (LMIs):

$\begin{matrix} {\begin{bmatrix} {\left( {{{\overset{\_}{A}}_{i}X} + {{\overset{\_}{B}}_{2i}V_{i}}} \right) + \left( {{{\overset{\_}{A}}_{i}X} + {{\overset{\_}{B}}_{2i}V_{i}}} \right)^{T}} & {\overset{\_}{B}\;}_{1} & \left( {{\overset{\_}{C}}_{1}X} \right)^{T} \\ 0 & {{- \gamma}\; I} & {\overset{\_}{D}\;}_{11}^{T} \\ 0 & 0 & {{- \gamma}\; I} \end{bmatrix} < 0} & (4) \end{matrix}$

wherein i=1, 2, Ā₂=Ā(λ_(min)), Ā₂=Ā(λ_(max)) B ₂₁=B ₂(λ_(min)) and B ₂₂=B ₂(λ_(max)); γ is a desired value of H_(∞) norm of a close loop transfer function T _(wz) (s) in the generalized form (3); I is an identity matrix; and the formula (4) is solved to obtain matrices X and V_(i);

step 2.3: computing the output of the LPV gain scheduling robust tracking controller:

$\begin{matrix} {{u_{c} = {{{K(\lambda)}\overset{\_}{x}} = {\sum\limits_{i = 1}^{2}{\alpha_{i}V_{i}X^{- 1}\overset{\_}{x}}}}}{{{{wherein}\mspace{14mu} {K(\lambda)}} = {\sum\limits_{i = 1}^{2}{\alpha_{i}V_{i}X^{- 1}}}},{{\alpha_{1}(\lambda)} = {\frac{\lambda_{\max} - \lambda}{\lambda_{\max} - \lambda_{\min}}\mspace{14mu} {and}}}}\text{}{{{\alpha_{2}(\lambda)} = \frac{\lambda - \lambda_{\min}}{\lambda_{\max} - \lambda_{\min}}};}} & (5) \end{matrix}$

step 3: for the turbofan engine LPV model with disturbance and sensor and actuator faults, establishing an adaptive fault estimator of the turbofan engine based on a robust H_(∞) optimization method to realize fault estimation of a sensor and an actuator;

step 3.1: considering that the turbofan engine control system has the actuator and sensor faults. and expressing a system with fault as shown in formula (6):

$\begin{matrix} \left\{ \begin{matrix} {{\overset{.}{x}}_{f} = {{{A(\lambda)}x_{f}} + {{B_{f}(\lambda)}u} + {Ed} + {{F_{f}(\lambda)}f}}} \\ {y_{f} = {{Cx}_{f} + {Gd} + {{H_{f}(\lambda)}f}}} \end{matrix} \right. & (6) \end{matrix}$

wherein x∈R^(n) is a state variable of the system with fault u∈R^(m) is control input of the system with fault; y_(f)∈R^(p) is measurement output of the system with fault; f=[f_(a) ^(T) f_(s) ^(T)]^(T)∈R^(l) is a fault signal; f_(a)∈R^(l) ¹ is an actuator fault; f_(s)∈R^(l) ² is a sensor fault; B_(f)(λ)∈R^(n×m) is a matrix of the system with fault; and F_(f)(λ)∈R^(n×l) and H_(f)(λ)∈R^(p×l) are respectively fault matrices of the actuator and the sensor;

step 3.2: separating a time varying part from a time invariant part in the formula (6), and rewriting into the following form

$\begin{matrix} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{e} \\ \hat{f} \\ z_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\begin{bmatrix} x_{e} \\ u_{e} \\ w_{e\; \lambda} \end{bmatrix}}} \\ {w_{\lambda} = {\Lambda \; z_{\lambda}}} \end{matrix} \right. & (7) \end{matrix}$

wherein external input is w=[u^(T) d^(T) f^(T)]^(T); z_(λ), w_(λ)∈R^(r) are respectively input and output variables of a r-dimensional time varying subsystem Λ=λI in the formula (6): B_(f1)∈R^(n×r), B_(f2)∈R^(n×(m+q+l)), C_(f1)∈R^(r×n), C_(f2)∈R^(p×n), D_(f11)∈R^(r×r) D₁₂∈R^(r×(m+q+l)), D_(f21)∈∈R^(p×r) and D_(f22)∈R^(p×(m+q+l)) are system state space matrices;

based on the formula (7), constructing a fault estimator state space expression as follows:

$\begin{matrix} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{e} \\ \hat{f} \\ z_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\begin{bmatrix} x_{e} \\ u_{e} \\ w_{e\; \lambda} \end{bmatrix}}} \\ {w_{\lambda} = {\Lambda \; z_{\lambda}}} \end{matrix} \right. & (8) \end{matrix}$

wherein x_(e)∈R^(k), u_(e)=[u^(T) y_(f) ^(T)]^(T)∈R^((p+m)) and {circumflex over (f)}∈R^(t) respectively represent a state variable, a control input and a fault estimation output of the fault estimator; z_(eλ)∈R^(r) and w_(eλ)∈R^(r) respectively represent an input and an output of the time varying part of the fault estimator; A_(e)∈R^(k×k), B_(e1)∈R^(k×(m+p)), B_(e2)∈R^(k×r), C_(e1)∈R^(l×k), C_(e2)∈R^(r×k), D_(e11)∈R^(l×(p+m)), D_(e12)∈R^(l×r), D_(e21)∈R^(r×(p+m)) and D_(e22)∈R^(r×r) are fault estimator coefficient matrices to be designed;

step 3.3: constructing a state space joint representation of the formula (7) of the system with fault of the turbofan engine and the formula (8) of the fault estimator:

$\begin{matrix} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{f} \\ \frac{{\overset{.}{x}}_{e}}{z_{e\; \lambda}} \\ \frac{z_{\lambda}}{e_{f}} \end{bmatrix} = {\begin{bmatrix} \overset{\_ \;}{A} & {\overset{\_ \;}{B}}_{1} & {\overset{\_ \;}{B}}_{2} \\ {\overset{\_}{C}}_{1} & {\overset{\_ \;}{D}}_{11} & {\overset{\_ \;}{D}}_{12} \\ {\overset{\_}{C}}_{2} & {\overset{\_ \;}{D}}_{21} & {\overset{\_}{D}\;}_{22} \end{bmatrix}\begin{bmatrix} {\overset{.}{x}}_{f} \\ \frac{{\overset{.}{x}}_{e}}{z_{e\; \lambda}} \\ \frac{z_{\lambda}}{e_{f}} \end{bmatrix}}} \\ {\begin{bmatrix} w_{\lambda} \\ w_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} \Lambda & 0 \\ 0 & \Lambda \end{bmatrix}\begin{bmatrix} z_{\lambda} \\ z_{e\; \lambda} \end{bmatrix}}} \end{matrix} \right. & (9) \end{matrix}$

wherein a fault estimate error is e_(f)={circumflex over (f)}−f,

$\begin{matrix} {{\begin{bmatrix} \overset{\_ \;}{A} & {\overset{\_}{B}\;}_{1} & {\overset{\_ \;}{B}}_{2} \\ {\overset{\_}{C}}_{1} & {\overset{\_ \;}{D}}_{11} & {\overset{\_ \;}{D}}_{12} \\ {\overset{\_}{C}}_{2} & {\overset{\_ \;}{D}}_{21} & {\overset{\_ \;}{D}}_{22} \end{bmatrix} = {\begin{bmatrix} A_{0} & B_{01} & B_{02} \\ C_{01} & D_{01} & D_{02} \\ C_{02} & D_{03} & D_{04} \end{bmatrix} + {\begin{bmatrix} T_{1} \\ T_{5} \\ T_{6} \end{bmatrix}{\Gamma \begin{bmatrix} T_{2} & T_{3} & T_{4} \end{bmatrix}}}}}\mspace{79mu} {{A_{0} = \begin{bmatrix} A & 0 \\ 0 & 0 \end{bmatrix}},{B_{01} = \begin{bmatrix} 0 & B_{f\; 1} \\ 0 & 0 \end{bmatrix}},{B_{02} = \begin{bmatrix} B_{f\; 2} \\ 0 \end{bmatrix}}}} & (10) \\ {\mspace{79mu} {{{C_{01} = \begin{bmatrix} 0 & 0 \\ C_{f\; 1} & 0 \end{bmatrix}},{D_{01} = \begin{bmatrix} 0 & 0 \\ 0 & D_{f\; 11} \end{bmatrix}},{D_{02} = \begin{bmatrix} 0 \\ D_{f\; 12} \end{bmatrix}}}\mspace{20mu} {{C_{02} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{03} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{04} = D_{22}}}}} & (11) \\ {\mspace{79mu} {{{T_{1} = \begin{bmatrix} 0 & 0 & 0 \\ I & 0 & 0 \end{bmatrix}},{T_{2} = \begin{bmatrix} 0 & I \\ C_{3} & 0 \\ 0 & 0 \end{bmatrix}},{T_{3} = \begin{bmatrix} 0 & 0 \\ 0 & D_{31} \\ I & 0 \end{bmatrix}}}\mspace{20mu} {{T_{4} = \begin{bmatrix} 0 \\ D_{32} \\ 0 \end{bmatrix}},{T_{5} = \begin{bmatrix} 0 & 0 & I \\ 0 & D_{13} & 0 \end{bmatrix}},{T_{6} = \begin{bmatrix} 0 & D_{23} & 0 \end{bmatrix}}}}} & (12) \\ {\mspace{79mu} {{\Gamma = {{\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\mspace{14mu} C_{3}} = \begin{bmatrix} 0 \\ C_{f\; 2} \end{bmatrix}}},{D_{22} = \begin{bmatrix} 0 & {- I} \\ 0 & 0 \end{bmatrix}},\mspace{20mu} {D_{23} = \begin{bmatrix} I \\ 0 \end{bmatrix}},{D_{31} = \begin{bmatrix} 0 \\ D_{f\; 21} \end{bmatrix}},{D_{32} = \begin{bmatrix} I & 0 & 0 \\ \; & D_{f\; 22} & \; \end{bmatrix}}}} & (13) \end{matrix}$

and Γ are estimation matrices of the fault estimator;

step 3.4: setting

${X = \begin{bmatrix} L & V \\ V^{T} & y \end{bmatrix}},{X^{- 1} = \begin{bmatrix} J & W \\ W^{T} & Z \end{bmatrix}}$

wherein L, V and Y respectively represent sub-block matrices of X; and J, W and Z respectively represent sub-block matrices of X⁻¹;

constructing a matrix P and an inverse matrix {tilde over (P)} as shown in formula (14):

$\begin{matrix} {{P = {\begin{bmatrix} Q & S \\ S^{T} & R \end{bmatrix} = \begin{bmatrix} Q_{1} & Q_{2} & S_{1} & S_{2} \\ Q_{2}^{T} & Q_{3} & S_{3} & S_{4} \\ S_{1}^{T} & S_{3}^{T} & R_{1} & R_{2} \\ S_{2}^{T} & S_{4}^{T} & R_{2}^{T} & R_{3} \end{bmatrix}}},{P^{- 1} = {\overset{\sim}{P} = {\begin{bmatrix} \overset{\sim}{Q} & \overset{\sim}{S} \\ {\overset{\sim}{S}}^{T} & \overset{\sim}{R} \end{bmatrix} = \begin{bmatrix} {\overset{\sim}{Q}}_{1} & {\overset{\sim}{Q}}_{2} & {\overset{\sim}{S}}_{1} & {\overset{\sim}{S}}_{2} \\ {\overset{\sim}{Q}}_{2}^{T} & {\overset{\sim}{Q}}_{3} & {\overset{\sim}{S}}_{3} & {\overset{\sim}{S}}_{4} \\ {\overset{\sim}{S}}_{1}^{T} & {\overset{\sim}{S}}_{3}^{T} & {\overset{\sim}{R}}_{1} & {\overset{\sim}{R}}_{2} \\ {\overset{\sim}{S}}_{2}^{T} & {\overset{\sim}{S}}_{4}^{T} & {\overset{\sim}{R}}_{2}^{T} & {\overset{\sim}{R}}_{3} \end{bmatrix}}}}} & (14) \end{matrix}$

wherein Q₁, Q₂ and Q₃ respectively represent sub-block matrices of Q; S₁, S₂, S₃ and S₄ respectively represent sub-block matrices of S; R₁, R₂ and R₃ respectively represent sub-block matrices of R; {tilde over (Q)}, {tilde over (S)} and {tilde over (R)} respectively represent sub-block matrices of {tilde over (P)}; {tilde over (Q)}₁, {tilde over (Q)}₂ and {tilde over (Q)}₃ respectively represent sub-block matrices of {tilde over (Q)}; {tilde over (S)}₁, {tilde over (S)}₂, {tilde over (S)}₃ and {tilde over (S)}₄ respectively represent sub-block matrices of {tilde over (S)}; {tilde over (R)}₁, {tilde over (R)}₂ and {tilde over (R)}₃ respectively represent sub-block matrices of {tilde over (R)};

constructing the following LMIs, and combining to solve corresponding matrix solutions L, J, Q₃, R₃, S₄, {tilde over (Q)}₃, {tilde over (R)}₃ and {tilde over (S)}₄:

$\begin{matrix} {{{N_{L}^{T}\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & L & 0 & 0 \\ 0 & Q_{3} & 0 & 0 & S_{4} & 0 \\ 0 & 0 & {{- \gamma}\; I} & 0 & 0 & 0 \\ L & 0 & 0 & 0 & 0 & 0 \\ 0 & S_{4}^{T} & 0 & 0 & R_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma^{- 1}I} \end{bmatrix}}{\quad{{\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}N_{L}} < 0}}} & (15) \\ {{{N_{J}^{T}\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & J & 0 & 0 \\ 0 & {\overset{\sim}{Q}}_{3} & 0 & 0 & {\overset{\sim}{S}}_{4} & 0 \\ 0 & 0 & {{- \gamma^{- 1}}\; I} & 0 & 0 & 0 \\ J & 0 & 0 & 0 & 0 & 0 \\ 0 & {\overset{\sim}{S}}_{4}^{T} & 0 & 0 & {\overset{\sim}{R}}_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma \; I} \end{bmatrix}}{\quad{{\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}N_{J}} > 0}}} & (16) \\ {\mspace{79mu} {\begin{bmatrix} J & I \\ I & L \end{bmatrix} > 0}} & (17) \\ {\mspace{79mu} {{R > 0},{Q = {- R}},{{S + S^{T}} = 0}}} & (18) \end{matrix}$

wherein N_(L) and N_(J) are respectively the bases of the nuclear spaces of [C₃ D₃₁ D₃₂] and [0 D₁₃ ^(T) D₂₃ ^(T)];

step 3.5: further, solving X in the formula (17) according to a solving result of the step 3.4;

$\begin{matrix} {{X\begin{bmatrix} J & I \\ W^{T} & 0 \end{bmatrix}} = \begin{bmatrix} I & L \\ 0 & V^{T} \end{bmatrix}} & (17) \end{matrix}$

solving P according to P{tilde over (P)}=I;

step 3.6: solving the following LMIs to obtain an estimation matrix Γ of the fault estimator:

$\begin{matrix} {\mspace{79mu} {{{\Psi + {{\overset{\_}{P}}^{T}\Gamma^{T}{\overset{\_}{Q}}_{X}} + {{\overset{\_}{Q}}_{X}^{T}\Gamma \; \overset{\_}{P}}} < 0}{{{wherein}\mspace{14mu} \Psi} = \left\lbrack \begin{matrix} {{A_{0}^{T}X} + {XA}_{0}} & {{XB}_{01} + {C_{01}^{T}S^{T}}} & {XB}_{02} & C_{01}^{T} & C_{02}^{T} \\ {{SC}_{01} + {B_{01}^{T}X^{T}}} & {Q + {D_{01}^{T}S^{T}} + {SD}_{01}} & {SD}_{02} & D_{01}^{T} & D_{03}^{T} \\ {B_{02}^{T}X^{T}} & {D_{02}^{T}S^{T}} & {{- \gamma}\; I} & D_{02}^{T} & D_{04}^{T} \\ C_{1} & D_{01} & D_{02} & {- \overset{\sim}{R}} & 0 \\ C_{02} & D_{03} & D_{4} & 0 & {{- \gamma}\; I} \end{matrix} \right\rbrack}\mspace{20mu} {{\overset{\_}{P} = \begin{bmatrix} T_{2} & T_{3} & T_{4} & 0 & 0 \end{bmatrix}},{{\overset{\_}{Q}}_{X} = \begin{bmatrix} {T_{1}^{T}X} & {T_{5}^{T}S^{T}} & 0 & T_{5}^{T} & T_{6}^{T} \end{bmatrix}}}}} & (19) \end{matrix}$

further, computing a coefficient matrix of the fault estimator:

$\begin{matrix} {\begin{bmatrix} {A_{E}(\lambda)} & {B_{E}(\lambda)} \\ {C_{E}(\lambda)} & {D_{E}(\lambda)} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} \\ C_{e\; 1} & D_{e\; 11} \end{bmatrix} + {\quad{\begin{bmatrix} B_{e\; 2} \\ D_{e\; 12} \end{bmatrix}{{\Lambda \left( {I - {D_{e\; 22}\Lambda}} \right)}^{- 1}\begin{bmatrix} C_{e\; 2} & D_{e\; 21} \end{bmatrix}}}}}} & (20) \end{matrix}$

step 4: designing an active fault tolerant controller of a turbofan engine based on a virtual actuator according to a fault estimation result: and without redesigning the controller, making the control system stable and obtaining a control effect similar to that of the system without fault;

step 4.1: considering the system with fault of the turbofan engine; and when the sensor and actuator faults exist, designing the virtual actuator based on a reconfiguration principle, with a state space model representation of a reconfigured system as follows:

$\begin{matrix} \left\{ {{{\begin{matrix} {\begin{bmatrix} {\overset{.}{\overset{\_}{x}}}_{f} \\ x_{\Delta} \end{bmatrix} = {{\begin{bmatrix} {A(\lambda)} & {{B_{2f}(\lambda)}{C_{\Delta}(\lambda)}} \\ 0 & {A_{\Delta}\lambda} \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}} + {\begin{bmatrix} {\overset{\_}{B}}_{1} \\ 0 \end{bmatrix}\overset{\_}{w}} + {\begin{bmatrix} {{{\overset{\_}{B}}_{2f}(\lambda)}{D_{\Delta}(\lambda)}} \\ {B_{\Delta}(\lambda)} \end{bmatrix}u_{c}}}} \\ {z_{re} = {{\begin{bmatrix} {\overset{\_}{C}}_{1} & 0 \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}} + {{\overset{\_}{D}}_{11}\overset{\_}{w}}}} \\ {x_{c} = {\begin{bmatrix} I & I \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}}} \end{matrix}\mspace{20mu} {wherein}\mspace{14mu} {\overset{\_}{x}}_{f}} = \begin{bmatrix} x_{f} \\ x_{ef} \end{bmatrix}};{x_{ef} = {{\int_{0}^{t}{{e_{f}(s)}{ds}}} = {\int_{0}^{t}{\left( {{y_{f}(s)} - {y_{r}(s)}} \right){ds}}}}};} \right. & (21) \end{matrix}$

x_(Δ) is a state variable of the virtual actuator;

${B_{2f} = \begin{bmatrix} {B_{f}(\lambda)} \\ 0 \end{bmatrix}};{{A_{\Delta}(\lambda)} = {{\overset{\_}{A}(\lambda)} - {{{\overset{\_}{B}}_{2f}(\lambda)}{M(\lambda)}}}};$ ${{B_{\Delta}(\lambda)} = {{{\overset{\_}{B}}_{2}(\lambda)} - {{{\overset{\_}{B}}_{2f}(\lambda)}{N(\lambda)}}}};{\overset{\_}{w} = \begin{bmatrix} d \\ y_{r} \end{bmatrix}};{{C_{\Delta}(\lambda)} = {M(\lambda)}};$ ${{D_{\Delta}(\lambda)} = {N(\lambda)}};{{\overset{\_}{C}}_{1} = \begin{bmatrix} C & 0 \\ 0 & I \end{bmatrix}};{{\overset{\_}{D}}_{11} = \begin{bmatrix} G & {- I} \\ 0 & 0 \end{bmatrix}};{x_{c} = {x_{\Delta} + {\overset{\_}{x}}_{f}}};z_{re}$

is a controlled output of the reconfigured system; M(λ) and N(λ) are to-be-solved matrices in an active fault tolerant control law;

solving positive definite matrices X_(v), Y₁ and Y₂ according to LMIs combined by (22)-(24);

$\begin{matrix} {{{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} + {X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}} + {2\; \rho \; X_{v}}} < 0} & (22) \\ {\begin{bmatrix} {- {rX}_{v}} & {{qX}_{c} + {{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \\ * & {- {rX}_{v}} \end{bmatrix} < 0} & (23) \\ {\begin{bmatrix} {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} & {{\cos (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} -} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \\ {{\cos (\theta)}\begin{pmatrix} {{X_{v}^{T}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}{\overset{\_}{B}}_{2f_{i}}^{T}} -} \\ {{{\overset{\_}{A}}_{i}X_{v}^{T}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \end{pmatrix}} & {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \end{bmatrix} < 0} & (24) \end{matrix}$

wherein i=1, 2; ρ is a minimum decay rate of an LMI region; r is a radius of the LMI region; q is a center of a circle; θ is an intersection angle of close loop poles and a transverse axis in the LMI region;

step 4.2: obtaining a matrix M_(i) according to Y_(i)=M_(i)X_(v);

step 4.3: computing

${N(\lambda)} = {{\sum\limits_{i = 1}^{2}{\alpha_{i}N_{i}}} = {\sum\limits_{i = 1}^{2}{\alpha_{i}{\overset{\_}{B}}_{2f_{i}}^{+}{{\overset{\_}{B}}_{2_{i}}.}}}}$

wherein B _(2f) _(i) ⁺ represents pseudo inverse of B _(2f) _(i) ;

step 4.4: computing a system matrix;

A _(Δ)(λ)=Ā(λ)− B _(2f)(λ)M(λ), B _(Δ)(λ)= B ₂(λ)− B _(2f)(λ)

C _(Δ)(λ)=M(λ), D _(Δ)(λ)=N(λ)

constructing a state space equation and a control law of the active fault tolerant controller:

$\begin{matrix} \left\{ {\begin{matrix} {{\overset{.}{x}}_{\Delta} = {{{A_{\Delta}(\lambda)}x_{\Delta}} + {{B_{\Delta}(\lambda)}u_{c}}}} \\ {u_{f} = {{{C_{\Delta}(\lambda)}x_{\Delta}} + {{D_{\Delta}(\lambda)}u_{c}} - {{\overset{\_}{B}}_{2f}^{- 1}{\overset{\_}{F}(\lambda)}\hat{f}}}} \end{matrix}.} \right. & (25) \end{matrix}$

The present invention has the beneficial effects: through the active fault tolerant controller of the turbofan engine control system designed by the method of the present invention, when the turbofan engine control system has actuator and sensor faults at the same time, without redesigning the controller, the control system is stable and a speed tracking effect similar to that of the system without fault is obtained through the designed reconfiguration controller.

DESCRIPTION OF DRAWINGS

FIG. 1 is a design flow chart of an active fault tolerant controller of a sensor and an actuator of a turbofan engine control system;

FIG. 2 is a block diagram of an LPV gain scheduling robust tracking controller of a turbofan engine;

FIG. 3(a) shows turbofan engine LPV gain scheduling robust tracking control simulation results when relative conversion speed of high pressure rotors is 88%;

FIG. 3(b) shows turbofan engine LPV gain scheduling robust tracking control simulation results when relative conversion speed of high pressure rotors is 94%;

FIG. 4 is a block diagram of a fault estimator of a turbofan engine;

FIG. 5(a) shows fault estimation results of a sensor of a turbofan engine;

FIG. 5(b) shows fault estimation results of an actuator of a turbofan engine;

FIG. 6 is a block diagram of an active fault tolerant controller of a sensor and an actuator of a turbofan engine control system;

FIG. 7(a) shows output of a system with fault when the relative conversion speed of high pressure rotors is 90%;

FIG. 7(b) shows output of a system with fault when the relative conversion speed of high pressure rotors is 94%;

FIG. 8(a) shows normal output results of a turbofan engine control system when the relative conversion speed of high pressure rotors is 90%;

FIG. 8(b) shows active fault tolerant control results of a turbofan engine control system when the relative conversion speed of high pressure rotors is 90%;

FIG. 9(a) shows normal output results of a turbofan engine control system when the relative conversion speed of high pressure rotors is 94%; and

FIG. 9(b) shows active fault tolerant control results of a turbofan engine control system when the relative conversion speed of high pressure rotors is 94%.

DETAILED DESCRIPTION

The present invention is further described below in combination with the drawings. The research object of the present invention is the turbofan engine after the sensor and actuator faults of the control system. The design method is shown in a flow chart of FIG. 1. Detailed design steps are as follows.

Step 1: establishing a turbofan engine LPV model based on turbofan engine test experimental data:

$\begin{matrix} {\mspace{79mu} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{1} \\ {\overset{.}{x}}_{2} \end{bmatrix} = {{\begin{bmatrix} {a_{11}(\lambda)} & {a_{12}(\lambda)} \\ {a_{21}(\lambda)} & {a_{22}(\lambda)} \end{bmatrix}\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} + {\begin{bmatrix} {b_{1}(\lambda)} \\ {b_{2}(\lambda)} \end{bmatrix}u} + {\begin{bmatrix} 0.1 \\ 0 \end{bmatrix}d}}} \\ {{{y\begin{bmatrix} 0 & 1 \end{bmatrix}}\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} + {0.2d}} \end{matrix} \right.} & \; \\ {\mspace{70mu} {wherein}} & \; \\ {\begin{bmatrix} {a_{11}(\lambda)} & {a_{12}(\lambda)} \\ {a_{21}(\lambda)} & {a_{22}(\lambda)} \end{bmatrix} = {\begin{bmatrix} {- 2.6748} & 0.6877 \\ 1.0704 & {- 4.4672} \end{bmatrix} + {\lambda \begin{bmatrix} 0.5199 & {- 2.4061} \\ 0.1049 & {- 0.8365} \end{bmatrix}}}} & (26) \\ {\mspace{79mu} {\begin{bmatrix} {b_{1}(\lambda)} \\ {b_{2}(\lambda)} \end{bmatrix} = {\begin{bmatrix} 0.0033 \\ 0.0012 \end{bmatrix} + {\lambda \begin{bmatrix} {- 0.0004} \\ {- 0.0001} \end{bmatrix}}}}} & (27) \end{matrix}$

a scheduling parameter λ is a normalized relative conversion speed of high pressure rotors of the turbofan engine: −1≤λ≤1; thus, a time varying parameter k forms a parametric polyhedron with −1 and 1 as vertexes, and the disturbance d takes Gaussian white noise with a standard deviation of 0.0001.

Step 2: as shown in FIG. 2, designing a LPV gain scheduling robust tracking controller for the turbofan engine LPV model with disturbance.

Setting γ=2 and solving LMI (4) to obtain the following corresponding matrix solutions X and V_(i) (i=1, 2).

$X = \begin{bmatrix} 10.3036 & 1.4883 & {- 1.7799} \\ 1.4883 & 1.5432 & {- 0.9087} \\ {- 1.7799} & {- 0.9087} & 0.8419 \end{bmatrix}$ $V_{1} = \begin{bmatrix} 5589 & {- 3460} & {- 946} \end{bmatrix}$ $V_{2} = \begin{bmatrix} 5894 & {- 1975} & {- 2096} \end{bmatrix}$

Obtaining the gain K(k) of the speed tracking controller in combination with the formula (5), and

${{\alpha_{1}(\lambda)} = \frac{1 - \lambda}{1 - \left( {- 1} \right)}},{{\alpha_{2}(\lambda)} = \frac{\lambda - \left( {- 1} \right)}{1 - \left( {- 1} \right)}}$

Thus, the gain of the speed tracking controller can be changed with the change of the time varying parameter λ and has scheduling characteristics. FIG. 3 respectively shows turbofan engine LPV gain scheduling robust tracking control simulation results when the relative conversion speeds of high pressure rotors are respectively 90% and 94%. It can be seen from the simulation results that, regardless of the parameters at the vertex or the parameters at non-vertex, the designed LPV speed tracking controller can ensure that the output responds quickly and tracks a reference instruction. Therefore, the controller has good control performance within all time varying parameters, can stably and quickly realize tracking and has good robustness and stability.

Step 3: establishing an adaptive fault estimator of the turbofan engine, as shown in FIG. 4, to realize fault estimation of a sensor and an actuator: considering that the turbofan engine control system has the actuator and sensor faults, as shown in formula (28):

$\begin{matrix} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{1} \\ {\overset{.}{x}}_{2} \end{bmatrix} = {{\begin{bmatrix} {a_{11}(\lambda)} & {a_{12}(\lambda)} \\ {a_{21}(\lambda)} & {a_{22}(\lambda)} \end{bmatrix}\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} + {\begin{bmatrix} {b_{1}(\lambda)} \\ {b_{2}(\lambda)} \end{bmatrix}u} + {\begin{bmatrix} 0.1 \\ 0 \end{bmatrix}d} + {\begin{bmatrix} {f_{1}(\lambda)} \\ 0 \end{bmatrix}f}}} \\ {y = {{\begin{bmatrix} 0 & 1 \end{bmatrix}\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} + {0.2d} + {\begin{bmatrix} 0 \\ {h(\lambda)} \end{bmatrix}f}}} \end{matrix} \right. & (28) \end{matrix}$

wherein f₁(λ)=0.1+0.01λ, −1≤λ≤1, h(λ)=0.5+0.02λ, −1≤λ≤1, and the disturbance takes Gaussian white noise with a standard deviation of 0.0001. The time varying parameter λ is real-time measurable, and the change thereof is supposed as follows

${\lambda (t)} = \left\{ \begin{matrix} {0,} & {0 \leq t < {5s}} \\ {{- 0.3333},} & {{5s} \leq t < {10s}} \\ {0.3333,} & {{10s} \leq t < {15s}} \\ {{- 0.5},} & {{15s} \leq t < {20s}} \\ {{- 0.6667},} & {{20s} \leq t < {25s}} \end{matrix} \right.$

A multiplicative actuator fault is expr as

$\begin{bmatrix} {b_{1f}(\lambda)} \\ {b_{2f}(\lambda)} \end{bmatrix} = \begin{bmatrix} {0.1{b_{1}(\lambda)}} \\ {0.1{b_{2}(\lambda)}} \end{bmatrix}$

A time varying part and a time invariant part in the formula (28) are separated and rewritten into the following form

$\quad\left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{f} \\ z_{\lambda} \\ y_{f} \end{bmatrix} = {\begin{bmatrix} A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ C_{f\; 2} & D_{f\; 21} & D_{f\; 22} \end{bmatrix}\begin{bmatrix} x_{f} \\ w_{\lambda} \\ w \end{bmatrix}}} \\ {w_{\lambda} = {\Lambda \; z_{\lambda}}} \end{matrix} \right.$

wherein external input is w=[u^(T) d^(T) f^(T)]^(T); z_(λ), w_(λ)∈R^(r) are respectively input and output variables of a r-dimensional time varying subsystem Λ=λI in the formula (6): B_(f1)∈R^(n×r), B_(f2)∈R^(n×(m+q+l)), C_(f1)∈R^(r×n), C_(f2)∈R^(p×n), D_(f11)∈R^(r×r) D₁₂∈R^(r×(m+q+l)), D_(f21)∈∈R^(p×r) and D_(f22)∈R^(p×(m+q+l)) are system state space matrices.

A fault estimator state space expression is constructed as follows

$\quad\left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{e} \\ \hat{f} \\ z_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\begin{bmatrix} x_{e} \\ u_{e} \\ w_{e\; \lambda} \end{bmatrix}}} \\ {w_{e\; \lambda} = {\Lambda \; z_{e\; \lambda}}} \end{matrix} \right.$

wherein x_(e)∈R^(k), u_(e)=[u^(T) Y_(f) ^(T)]^(T)∈R^((p+m)) and {circumflex over (f)}∈R^(t) respectively represent a state variable, a control input and a fault estimation output of the fault estimator; z_(eλ)∈R^(r) and w_(eλ)∈R^(r) respectively represent an input and an output of the time varying part of the fault estimator; A_(e)∈R^(k×k), B_(e1)∈R^(k×(m+p)), B_(e2)∈R^(k×r), C_(e1)∈R^(l×k), C_(e2)∈R^(r×k), D_(e11)∈R^(l×(p+m)), D_(e12)∈R^(l×r), D_(e21)∈R^(r×(p+m)) and D_(e22)∈R^(r×r) are fault estimator coefficient matrices to be designed.

A state space joint representation of the system with fault of the turbofan engine and the fault estimator is constructed:

$\quad\left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{f} \\ \frac{{\overset{.}{x}}_{e}}{z_{e\; \lambda}} \\ \frac{z_{\lambda}}{e_{f}} \end{bmatrix} = {\begin{bmatrix} A & B_{1} & B_{2} \\ C_{1} & D_{11} & D_{12} \\ C_{2} & D_{21} & D_{22} \end{bmatrix}\begin{bmatrix} x_{f} \\ \frac{x_{e}}{w_{e\; \lambda}} \\ \frac{w_{\lambda}}{w} \end{bmatrix}}} \\ {\begin{bmatrix} w_{\lambda} \\ w_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} \Lambda & 0 \\ 0 & \Lambda \end{bmatrix}\begin{bmatrix} z_{\lambda} \\ z_{e\; \lambda} \end{bmatrix}}} \end{matrix} \right.$

wherein a fault estimate error is e_(f)={circumflex over (f)}−f,

$\begin{matrix} {{\begin{bmatrix} \overset{\_ \;}{A} & {\overset{\_}{B}\;}_{1} & {\overset{\_ \;}{B}}_{2} \\ {\overset{\_}{C}}_{1} & {\overset{\_ \;}{D}}_{11} & {\overset{\_ \;}{D}}_{12} \\ {\overset{\_}{C}}_{2} & {\overset{\_ \;}{D}}_{21} & {\overset{\_ \;}{D}}_{22} \end{bmatrix} = {\begin{bmatrix} A_{0} & B_{01} & B_{02} \\ C_{01} & D_{01} & D_{02} \\ C_{02} & D_{03} & D_{04} \end{bmatrix} + {\begin{bmatrix} T_{1} \\ T_{5} \\ T_{6} \end{bmatrix}{\Gamma \begin{bmatrix} T_{2} & T_{3} & T_{4} \end{bmatrix}}}}}\mspace{79mu} {{A_{0} = \begin{bmatrix} A & 0 \\ 0 & 0 \end{bmatrix}},{B_{01} = \begin{bmatrix} 0 & B_{f\; 1} \\ 0 & 0 \end{bmatrix}},{B_{02} = \begin{bmatrix} B_{f\; 2} \\ 0 \end{bmatrix}}}} & (10) \\ {\mspace{79mu} {{{C_{01} = \begin{bmatrix} 0 & 0 \\ C_{f\; 1} & 0 \end{bmatrix}},{D_{01} = \begin{bmatrix} 0 & 0 \\ 0 & D_{f\; 11} \end{bmatrix}},{D_{02} = \begin{bmatrix} 0 \\ D_{f\; 12} \end{bmatrix}}}\mspace{20mu} {{C_{02} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{03} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{04} = D_{22}}}}} & (11) \\ {\mspace{79mu} {{{T_{1} = \begin{bmatrix} 0 & 0 & 0 \\ I & 0 & 0 \end{bmatrix}},{T_{2} = \begin{bmatrix} 0 & I \\ C_{3} & 0 \\ 0 & 0 \end{bmatrix}},{T_{3} = \begin{bmatrix} 0 & 0 \\ 0 & D_{31} \\ I & 0 \end{bmatrix}}}\mspace{20mu} {{T_{4} = \begin{bmatrix} 0 \\ D_{32} \\ 0 \end{bmatrix}},{T_{5} = \begin{bmatrix} 0 & 0 & I \\ 0 & D_{13} & 0 \end{bmatrix}},{T_{6} = \begin{bmatrix} 0 & D_{23} & 0 \end{bmatrix}}}}} & (12) \\ {\mspace{79mu} {{\Gamma = {{\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\mspace{14mu} C_{3}} = \begin{bmatrix} 0 \\ C_{f\; 2} \end{bmatrix}}},{D_{22} = \begin{bmatrix} 0 & {- I} \\ 0 & 0 \end{bmatrix}},\mspace{20mu} {D_{23} = \begin{bmatrix} I \\ 0 \end{bmatrix}},{D_{31} = \begin{bmatrix} 0 \\ D_{f\; 21} \end{bmatrix}},{D_{32} = \begin{bmatrix} I & 0 & 0 \\ \; & D_{f\; 22} & \; \end{bmatrix}}}} & (13) \end{matrix}$

and Γ are estimation matrices of the fault estimator.

Setting

${X = \begin{bmatrix} L & V \\ V^{T} & Y \end{bmatrix}},{X^{- 1} = \begin{bmatrix} J & W \\ W^{T} & Z \end{bmatrix}}$

wherein L, V and Y respectively represent sub-block matrices of X; and J, W and Z respectively represent sub-block matrices of X.

A matrix P and its inverse matrix {tilde over (P)} are constructed:

${P = {\begin{bmatrix} Q & S \\ S^{T} & R \end{bmatrix} = \begin{bmatrix} Q_{1} & Q_{2} & S_{1} & S_{2} \\ Q_{2}^{T} & Q_{3} & S_{3} & S_{4} \\ S_{1}^{T} & S_{3}^{T} & R_{1} & R_{2} \\ S_{2}^{T} & S_{4}^{T} & R_{2}^{T} & R_{3} \end{bmatrix}}},{P^{- 1} = {\overset{\sim}{P} = {\begin{bmatrix} \overset{\sim}{Q} & \overset{\sim}{S} \\ {\overset{\sim}{S}}^{T} & \overset{\sim}{R} \end{bmatrix} = \begin{bmatrix} {\overset{\sim}{Q}}_{1} & {\overset{\sim}{Q}}_{2} & {\overset{\sim}{S}}_{1} & {\overset{\sim}{S}}_{2} \\ {\overset{\sim}{Q}}_{2}^{T} & {\overset{\sim}{Q}}_{3} & {\overset{\sim}{S}}_{3} & {\overset{\sim}{S}}_{4} \\ {\overset{\sim}{S}}_{1}^{T} & {\overset{\sim}{S}}_{3}^{T} & {\overset{\sim}{R}}_{1} & {\overset{\sim}{R}}_{2} \\ {\overset{\sim}{S}}_{2}^{T} & {\overset{\sim}{S}}_{4}^{T} & {\overset{\sim}{R}}_{2}^{T} & {\overset{\sim}{R}}_{3} \end{bmatrix}}}}$

wherein Q₁, Q₂ and Q₃ respectively represent sub-block matrices of Q; S₁, S₂, S₃ and S₄ respectively represent sub-block matrices of S; R₁, R₂ and R₃ respectively represent sub-block matrices of R; {tilde over (Q)}, {tilde over (S)} and {tilde over (R)} respectively represent sub-block matrices of {tilde over (P)}; {tilde over (Q)}₁, {tilde over (Q)}₂ and {tilde over (Q)}₃ respectively represent sub-block matrices of {tilde over (Q)}; {tilde over (S)}₁, {tilde over (S)}₂, {tilde over (S)}₃ and {tilde over (S)}₄ respectively represent sub-block matrices of {tilde over (S)}; {tilde over (R)}₁, {tilde over (R)}₂ and {tilde over (R)}₃ respectively represent sub-block matrices of {tilde over (R)}.

The following LMIs are constructed, and combined to solve corresponding matrix solutions L, J, Q₃, R₃, S₄, {tilde over (Q)}₃, {tilde over (R)}₃ and {tilde over (S)}₄:

${{N_{L}^{T}\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & L & 0 & 0 \\ 0 & Q_{3} & 0 & 0 & S_{4} & 0 \\ 0 & 0 & {{- \gamma}\; I} & 0 & 0 & 0 \\ L & 0 & 0 & 0 & 0 & 0 \\ 0 & S_{4}^{T} & 0 & 0 & R_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma^{- 1}I} \end{bmatrix}}{\quad{{\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}N_{L}} < {0{{N_{J}^{T}\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & J & 0 & 0 \\ 0 & {\overset{\sim}{Q}}_{3} & 0 & 0 & {\overset{\sim}{S}}_{4} & 0 \\ 0 & 0 & {{- \gamma^{- 1}}\; I} & 0 & 0 & 0 \\ J & 0 & 0 & 0 & 0 & 0 \\ 0 & {\overset{\sim}{S}}_{4}^{T} & 0 & 0 & {\overset{\sim}{R}}_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma \; I} \end{bmatrix}}{\quad{{{\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}N_{L}} < {0\mspace{20mu}\begin{bmatrix} J & I \\ I & L \end{bmatrix}} > 0},{R > 0},{Q = {- R}},{{S + S^{T}} = 0}}}}}}$

wherein N_(L) and N_(J) are respectively the bases of the nuclear spaces of [C₃ D₃₁ D₃₂] and [0 D₁₃ ^(T) D₂₃ ^(T)].

Further, X is solved:

${X\begin{bmatrix} J & I \\ W^{T} & 0 \end{bmatrix}} = \begin{bmatrix} I & L \\ 0 & V^{T} \end{bmatrix}$

P is solved according to P{tilde over (P)}=1.

The following LMIs are solved to obtain an estimation matrix Γ of the fault estimator:

Ψ+ P ^(T)Γ^(T) Q _(X) +Q _(X) ^(T) ΓP<0

wherein

$\Psi = \begin{bmatrix} {{A_{0}^{T}X} + {XA}_{0}} & {{XB}_{01} + {C_{01}^{T}S^{T}}} & {XB}_{02} & C_{01}^{T} & C_{02}^{T} \\ {{SC}_{01} + {B_{01}^{T}X^{T}}} & {Q + {D_{01}^{T}S^{T}} + {SD}_{01}} & {SD}_{02} & D_{01}^{T} & D_{03}^{T} \\ {B_{02}^{T}X^{T}} & {D_{02}^{T}S^{T}} & {{- \gamma}\; I} & D_{02}^{T} & D_{04}^{T} \\ C_{01} & D_{01} & D_{02} & {- \overset{\sim}{R}} & 0 \\ C_{02} & D_{03} & D_{04} & 0 & {{- \gamma}\; I} \end{bmatrix}$ ${\overset{\_}{P} = \begin{bmatrix} T_{2} & T_{3} & T_{4} & 0 & 0 \end{bmatrix}},{{\overset{\_}{Q}}_{X} = \begin{bmatrix} {T_{1}^{T}X} & {T_{5}^{T}S^{T}} & 0 & T_{5}^{T} & T_{6}^{T} \end{bmatrix}}$

Further, a coefficient matrix of the fault estimator is computed.

$\begin{bmatrix} {A_{E}(\lambda)} & {B_{E}(\lambda)} \\ {C_{E}(\lambda)} & {D_{E}(\lambda)} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} \\ C_{e\; 1} & D_{e\; 11} \end{bmatrix} + {\begin{bmatrix} B_{e\; 2} \\ D_{e\; 12} \end{bmatrix}{{\Lambda \left( {I - {D_{e\; 22}\Lambda}} \right)}^{- 1}\begin{bmatrix} C_{e\; 2} & D_{e\; 21} \end{bmatrix}}}}$

FIG. 5 respectively shows estimation results of the fault estimator when the sensor and the actuator of the control system have sudden faults. It can be seen from the simulation results that, the LPV fault estimator can adaptively adjust the parameters, adapt to current system dynamics, quickly detect the faults, and accurately reconfigure fault signals.

Step 4: designing an active fault tolerant controller of a turbofan engine based on a virtual actuator according to a fault estimation result, as shown in FIG. 6. Considering the system (28) with fault of the turbofan engine, FIG. 7 shows the output of the system with fault when the relative conversion speeds of high pressure rotors are respectively 90% and 94%. It can be seen that under fault states, the output of the system is significantly different from that of the system without fault. Positive definite matrices X_(v), Y₁ and Y₂ are solved according to LMIs combined by (22)-(24).

$\; {{{{\overset{\_}{A}}_{t}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} + {X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}} + {2\; \rho \; X_{v}}} < {{0\begin{bmatrix} {- {rX}_{v}} & {{qX}_{v} + {{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \\ * & {- {rX}_{v}} \end{bmatrix}}\begin{bmatrix} {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} & {{\cos (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {\overset{\_}{B}}_{2f_{i}} -} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \\ {{\cos (\theta)}\begin{pmatrix} {{X_{v}^{T}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2\overset{\_}{f_{i}}}^{T}} -} \\ {{{\overset{\_}{A}}_{i}X_{v}^{T}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \end{pmatrix}} & {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \end{bmatrix}}}$

wherein i=1, 2, ρ=10, r=−4.5, q=15 and θ=π/6.

A matrix M_(i) (i=1, 2) is obtained according to Y₁=M_(i)X_(v).

${N(\lambda)} = {{\sum\limits_{i = 1}^{2}{\alpha_{i}N_{i}}} = {{\sum\limits_{i = 1}^{2}{\alpha_{i}{\overset{\_}{B}}_{2f_{i}}}} + {\overset{\_}{B}}_{2_{i}}}}$

(i=1, 2) is computed, wherein B _(2f) _(i) ⁺ represents pseudo inverse of B _(2f) _(i) .

A system matrix is computed.

A _(Δ)(λ)=Ā(λ)− B _(2f)(λ)M(λ), B _(Δ)(λ)= B ₂(λ)− B _(2f)(λ)

C _(Δ)(λ)=M(λ), D _(Δ)(λ)=N(λ)

A state space equation and a control law of the active fault tolerant controller are constructed.

$\quad\left\{ \begin{matrix} {{\overset{.}{x}}_{\Delta} = {{{A_{\Delta}(\lambda)}x_{\Delta}} + {{B_{\Delta}(\lambda)}u_{c}}}} \\ {u_{f} = {{{C_{\Delta}(\lambda)}x_{\Delta}} + {{D_{\Delta}(\lambda)}u_{c}} - {{\overset{\_}{B}}_{2f}^{- 1}{\overset{\_}{F}(\lambda)}\hat{f}}}} \end{matrix} \right.$

The system with fault is reconfigured by the above designed virtual actuator. FIG. 8 and FIG. 9 respectively show result comparison of normal output of the control system and the system with fault after active fault tolerant control when the relative conversion speeds of the high pressure rotors are 90% and 94%. It can be seen from the simulation results that, after the active fault tolerant controller is introduced, the control performance of the reconfigured system is similar to that of the system without fault, and the faults are hidden, thereby achieving active fault tolerance. In addition, because the virtual actuator is used for reconfiguration, the redesign of an original speed tracking controller is avoided, and the complexity of system maintenance is reduced, which is of great significance for engineering application. 

1. A method for active fault tolerant control of a turbofan engine control system, comprising the following steps: step 1: establishing a turbofan engine LPV model based on turbofan engine test experimental data: $\begin{matrix} \left\{ \begin{matrix} {\overset{.}{x} = {{{A(\lambda)}x} + {{B(\lambda)}u_{c}} + {Ed}}} \\ {y = {{Cx} + {Gd}}} \end{matrix} \right. & (1) \end{matrix}$ wherein x∈R^(n) is a state variable u_(c)∈R^(m) is the control input of a turbofan engine; d∈R^(q) is a disturbance signal: output is y∈R^(p); the value of a scheduling parameter λ is a normalized relative conversion speed of high pressure rotors of the turbofan engine; λ_(min)≤λ≤λ_(max); λ_(min) and λ_(max) are respectively a minimum value and a maximum value of the scheduling parameter; system matrices are A(λ)∈R^(n×n), B(λ)∈R^(n×m), C∈R^(n×m), E∈R^(n×q), G∈R^(p×q); R^((⋅)) represents a (⋅)-dimensional real column vector; and R^(a×b) represents a a×b-dimensional real matrix; step 2: designing a LPV gain scheduling robust tracking controller for the turbofan engine LPV model with disturbance; step 2.1: introducing a new state variable x_(e), defined as x _(e)=∫₀ ^(i) e(s)ds=∫ ₀ ^(i)(y(s)−y _(r)(s))ds  (2) wherein e(⋅) is a tracking error and y_(r(⋅)) is a desired tracking signal: rewriting formula (1) into a formula (3) of a generalized form $\begin{matrix} \left\{ {{{\begin{matrix} {\overset{.}{\overset{\_}{x}} = {{{\overset{\_}{A}(\lambda)}\overset{\_}{x}} + {{\overset{\_}{B}}_{1}\overset{\_}{w}} + {{{\overset{\_}{B}}_{2}(\lambda)}u_{c}}}} \\ {\overset{\_}{z} = {{{\overset{\_}{C}}_{1}\overset{\_}{x}} + {{\overset{\_}{D}}_{11}\overset{\_}{w}}}} \end{matrix}\mspace{14mu} {wherein}\mspace{14mu} \overset{\_}{x}} = \begin{bmatrix} x \\ x_{e} \end{bmatrix}},{\overset{\_}{w} = \begin{bmatrix} d \\ y_{r} \end{bmatrix}},{\overset{\_}{z} = \begin{bmatrix} e \\ x_{e} \end{bmatrix}},{{\overset{\_}{A}(\lambda)} = \begin{bmatrix} {A(\lambda)} & 0 \\ C & 0 \end{bmatrix}},{{\overset{\_}{B}}_{1} = \begin{bmatrix} E & 0 \\ G & {- I} \end{bmatrix}},{{{\overset{\_}{B}}_{2}(\lambda)} = \begin{bmatrix} {B(\lambda)} \\ 0 \end{bmatrix}},{{{\overset{\_}{C}}_{1} = {{\begin{bmatrix} C & 0 \\ 0 & I \end{bmatrix}\mspace{14mu} {and}\mspace{14mu} {\overset{\_}{D}}_{11}} = \begin{bmatrix} G & {- I} \\ 0 & 0 \end{bmatrix}}};}} \right. & (3) \end{matrix}$ step 2.2: for the formula (3), constructing and solving the following linear matrix inequalities (LMIs): $\begin{matrix} \begin{bmatrix} {\left( {{{\overset{\_}{A}}_{i}X} + {{\overset{\_}{B}}_{2i}V_{i}}} \right) + \left( {{{\overset{\_}{A}}_{i}X} + {{\overset{\_}{B}}_{2i}V_{i}}} \right)^{T}} & {\overset{\_}{B}\;}_{1} & \left( {{\overset{\_}{C}}_{1}X} \right)^{T} \\ 0 & {{- \gamma}\; I} & {\overset{\_}{D}\;}_{11}^{T} \\ 0 & 0 & {{- \gamma}\; I} \end{bmatrix} & (4) \end{matrix}$ wherein i=1, 2, Ā₂=Ā(λ_(min)), Ā₂=Ā(λ_(max)) B ₂₁=B ₂(λ_(min)) and B ₂₂=B ₂(λ_(max)); γ is a desired value of H_(∞) norm of a close loop transfer function T _(wz) (s) in the generalized form (3); I is an identity matrix; and the formula (4) is solved to obtain matrices X and V_(i); step 2.3: computing the output of the LPV gain scheduling robust tracking controller: $\begin{matrix} {{u_{c} = {{{K(\lambda)}x} = {\sum\limits_{i = 1}^{2}{\alpha_{i}V_{i}X^{- 1}x}}}}{{{{wherein}\mspace{14mu} {K(\lambda)}} = {\sum\limits_{i = 1}^{2}{\alpha_{i}V_{i}X^{- 1}}}},{{\alpha_{1}(\lambda)} = {\frac{\lambda_{\max} - \lambda}{\lambda_{\max} - \lambda_{\min}}\mspace{14mu} {and}}}}{{{\alpha_{2}(\lambda)} = \frac{\lambda - \lambda_{\min}}{\lambda_{\max} - \lambda_{\min}}};}} & (5) \end{matrix}$ step 3: for the turbofan engine LPV model with disturbance and sensor and actuator faults, establishing an adaptive fault estimator of the turbofan engine based on a robust H_(∞) optimization method to realize fault estimation of a sensor and an actuator; step 3.1: considering that the turbofan engine control system has the actuator and sensor faults, and expressing a system with fault as shown in formula (6): $\begin{matrix} \left\{ \begin{matrix} {{\overset{.}{x}}_{f} = {{{A(\lambda)}x_{f}} + {{B_{f}(\lambda)}u} + {Ed} + {{F_{f}(\lambda)}f}}} \\ {y_{f} = {{Cx}_{f} + {Gd} + {{H_{f}(\lambda)}f}}} \end{matrix} \right. & (6) \end{matrix}$ wherein x∈R^(n) is a state variable of the system with fault u∈R^(m) is control input of the system with fault; y_(f)∈R^(p) is measurement output of the system with fault; f=[f_(a) ^(T) f_(s) ^(T)]^(T)∈R^(l) is a fault signal; f_(a)∈R^(l) ¹ is an actuator fault; f_(s)∈R^(l) ² is a sensor fault; B_(f)(λ)∈R^(n×m) is a matrix of the system with fault; and F_(f)(λ)∈R^(n×l) and H_(f)(λ)∈R^(p×l) are respectively fault matrices of the actuator and the sensor; step 3.2: separating a time varying part from a time invariant part in the formula (6), and rewriting into the following form $\begin{matrix} {\quad\left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{f} \\ z_{\lambda} \\ y_{f} \end{bmatrix} = {\begin{bmatrix} A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ C_{f\; 2} & D_{f\; 21} & D_{f\; 22} \end{bmatrix}\begin{bmatrix} x_{f} \\ w_{\lambda} \\ w \end{bmatrix}}} \\ {w_{\lambda} = {\Lambda \; z_{\lambda}}} \end{matrix} \right.} & (7) \end{matrix}$ wherein external input is w=[u^(T) d^(T) f^(T)]^(T); z_(λ), w_(λ)∈R^(r) are respectively input and output variables of a r-dimensional time varying subsystem Λ=λI in the formula (6): B_(f1)∈R^(n×r), B_(f2)∈R^(n×(m+q+l)), C_(f1)∈R^(r×n), C_(f2)∈R^(p×n), D_(f11)∈R^(r×r) D₁₂∈R^(r×(m+q+l)), D_(f21)∈∈R^(p×r) and D_(f22)∈R^(p×(m+q+l)) are system state space matrices; based on the formula (7), constructing a fault estimator state space expression as follows: $\begin{matrix} {\quad\left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{e} \\ \hat{f} \\ z_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\begin{bmatrix} x_{e} \\ u_{e} \\ w_{e\; \lambda} \end{bmatrix}}} \\ {w_{e\; \lambda} = {\Lambda \; z_{e\; \lambda}}} \end{matrix} \right.} & (8) \end{matrix}$ wherein x_(e)∈R^(k), u_(e)=[u^(T) Y_(f) ^(T)]^(T)∈R^((p+m)) and {circumflex over (f)}∈R^(t) respectively represent a state variable, a control input and a fault estimation output of the fault estimator; z_(eλ)∈R^(r) and w_(eλ)∈R^(r) respectively represent an input and an output of the time varying part of the fault estimator; A_(e)∈R^(k×k), B_(e1)∈R^(k×(m+p)), B_(e2)∈R^(k×r), C_(e1)∈R^(l×k), C_(e2)∈R^(r×k), D_(e11)∈R^(l×(p+m)), D_(e12)∈R^(l×r), D_(e21)∈R^(r×(p+m)) and D_(e22)∈R^(r×r) are fault estimator coefficient matrices to be designed; step 3.3: constructing a state space joint representation of the formula (7) of the system with fault of the turbofan engine and the formula (8) of the fault estimator: $\quad\begin{matrix} \left\{ \begin{matrix} {\begin{bmatrix} {\overset{.}{x}}_{f} \\ \frac{{\overset{.}{x}}_{e}}{z_{e\; \lambda}} \\ \frac{z_{\lambda}}{e_{f}} \end{bmatrix} = {\begin{bmatrix} \overset{\_ \;}{A} & {\overset{\_ \;}{B}}_{1} & {\overset{\_ \;}{B}}_{2} \\ {\overset{\_}{C}}_{1} & {\overset{\_ \;}{D}}_{11} & {\overset{\_ \;}{D}}_{12} \\ {\overset{\_}{C}}_{2} & {\overset{\_ \;}{D}}_{21} & {\overset{\_ \;}{D}}_{22} \end{bmatrix}\begin{bmatrix} x_{f} \\ \frac{x_{e}}{w_{e\; \lambda}} \\ \frac{w_{\lambda}}{w} \end{bmatrix}}} \\ {\begin{bmatrix} w_{\lambda} \\ w_{e\; \lambda} \end{bmatrix} = {\begin{bmatrix} \Lambda & 0 \\ 0 & \Lambda \end{bmatrix}\begin{bmatrix} z_{\lambda} \\ z_{e\; \lambda} \end{bmatrix}}} \end{matrix} \right. & (9) \end{matrix}$ wherein a fault estimate error is e_(f)={circumflex over (f)}−f, $\begin{matrix} {{\begin{bmatrix} \overset{\_ \;}{A} & {\overset{\_}{B}\;}_{1} & {\overset{\_ \;}{B}}_{2} \\ {\overset{\_}{C}}_{1} & {\overset{\_ \;}{D}}_{11} & {\overset{\_ \;}{D}}_{12} \\ {\overset{\_}{C}}_{2} & {\overset{\_ \;}{D}}_{21} & {\overset{\_ \;}{D}}_{22} \end{bmatrix} = {\begin{bmatrix} A_{0} & B_{01} & B_{02} \\ C_{01} & D_{01} & D_{02} \\ C_{02} & D_{03} & D_{04} \end{bmatrix} + {\begin{bmatrix} T_{1} \\ T_{5} \\ T_{6} \end{bmatrix}{\Gamma \begin{bmatrix} T_{2} & T_{3} & T_{4} \end{bmatrix}}}}}\mspace{79mu} {{A_{0} = \begin{bmatrix} A & 0 \\ 0 & 0 \end{bmatrix}},{B_{01} = \begin{bmatrix} 0 & B_{f\; 1} \\ 0 & 0 \end{bmatrix}},{B_{02} = \begin{bmatrix} B_{f\; 2} \\ 0 \end{bmatrix}}}} & (10) \\ {\mspace{79mu} {{{C_{01} = \begin{bmatrix} 0 & 0 \\ C_{f\; 1} & 0 \end{bmatrix}},{D_{01} = \begin{bmatrix} 0 & 0 \\ 0 & D_{f\; 11} \end{bmatrix}},{D_{02} = \begin{bmatrix} 0 \\ D_{f\; 12} \end{bmatrix}}}\mspace{20mu} {{C_{02} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{03} = \begin{bmatrix} 0 & 0 \end{bmatrix}},{D_{04} = D_{22}}}}} & (11) \\ {\mspace{79mu} {{{T_{1} = \begin{bmatrix} 0 & 0 & 0 \\ I & 0 & 0 \end{bmatrix}},{T_{2} = \begin{bmatrix} 0 & I \\ C_{3} & 0 \\ 0 & 0 \end{bmatrix}},{T_{3} = \begin{bmatrix} 0 & 0 \\ 0 & D_{31} \\ I & 0 \end{bmatrix}}}\mspace{20mu} {{T_{4} = \begin{bmatrix} 0 \\ D_{32} \\ 0 \end{bmatrix}},{T_{5} = \begin{bmatrix} 0 & 0 & I \\ 0 & D_{13} & 0 \end{bmatrix}},{T_{6} = \begin{bmatrix} 0 & D_{23} & 0 \end{bmatrix}}}}} & (12) \\ {\mspace{79mu} {{\Gamma = {{\begin{bmatrix} A_{e} & B_{e\; 1} & B_{e\; 2} \\ C_{e\; 1} & D_{e\; 11} & D_{e\; 12} \\ C_{e\; 2} & D_{e\; 21} & D_{e\; 22} \end{bmatrix}\mspace{14mu} C_{3}} = \begin{bmatrix} 0 \\ C_{f\; 2} \end{bmatrix}}},{D_{22} = \begin{bmatrix} 0 & {- I} \\ 0 & 0 \end{bmatrix}},\mspace{20mu} {D_{23} = \begin{bmatrix} I \\ 0 \end{bmatrix}},{D_{31} = \begin{bmatrix} 0 \\ D_{f\; 21} \end{bmatrix}},{D_{32} = \begin{bmatrix} I & 0 & 0 \\ \; & D_{f\; 22} & \; \end{bmatrix}}}} & (13) \end{matrix}$ and Γ are estimation matrices of the fault estimator; step 3.4: setting ${X = \begin{bmatrix} L & V \\ V^{T} & Y \end{bmatrix}},{X^{- 1} = \begin{bmatrix} J & W \\ W^{T} & Z \end{bmatrix}}$ wherein L, V and Y respectively represent sub-block matrices of X; and J, W and Z respectively represent sub-block matrices of X⁻¹; constructing a matrix P and an inverse matrix {tilde over (P)} as shown in formula (14): $\begin{matrix} {{P = {\begin{bmatrix} Q & S \\ S^{T} & R \end{bmatrix} = \begin{bmatrix} Q_{1} & Q_{2} & S_{1} & S_{2} \\ Q_{2}^{T} & Q_{3} & S_{3} & S_{4} \\ S_{1}^{T} & S_{3}^{T} & R_{1} & R_{2} \\ S_{2}^{T} & S_{4}^{T} & R_{2}^{T} & R_{3} \end{bmatrix}}},{P^{- 1} = {\overset{\sim}{P} = {\begin{bmatrix} \overset{\sim}{Q} & \overset{\sim}{S} \\ {\overset{\sim}{S}}^{T} & \overset{\sim}{R} \end{bmatrix} = \begin{bmatrix} {\overset{\sim}{Q}}_{1} & {\overset{\sim}{Q}}_{2} & {\overset{\sim}{S}}_{1} & {\overset{\sim}{S}}_{2} \\ {\overset{\sim}{Q}}_{2}^{T} & {\overset{\sim}{Q}}_{3} & {\overset{\sim}{S}}_{3} & {\overset{\sim}{S}}_{4} \\ {\overset{\sim}{S}}_{1}^{T} & {\overset{\sim}{S}}_{3}^{T} & {\overset{\sim}{R}}_{1} & {\overset{\sim}{R}}_{2} \\ {\overset{\sim}{S}}_{2}^{T} & {\overset{\sim}{S}}_{4}^{T} & {\overset{\sim}{R}}_{2}^{T} & {\overset{\sim}{R}}_{3} \end{bmatrix}}}}} & (14) \end{matrix}$ wherein Q₁, Q₂ and Q₃ respectively represent sub-block matrices of Q; S₁, S₂, S₃ and S₄ respectively represent sub-block matrices of S; R₁, R₂ and R₃ respectively represent sub-block matrices of R; {tilde over (Q)}, {tilde over (S)} and {tilde over (R)} respectively represent sub-block matrices of {tilde over (P)}; {tilde over (Q)}₁, {tilde over (Q)}₂ and {tilde over (Q)}₃ respectively represent sub-block matrices of {tilde over (Q)}; {tilde over (S)}₁, {tilde over (S)}₂, {tilde over (S)}₃ and {tilde over (S)}₄ respectively represent sub-block matrices of {tilde over (S)}; {tilde over (R)}₁, {tilde over (R)}₂ and {tilde over (R)}₃ respectively represent sub-block matrices of {tilde over (R)}; constructing the following LMIs, and combining to solve corresponding matrix solutions L, J, Q₃, R₃, S₄, {tilde over (Q)}₃, {tilde over (R)}₃ and {tilde over (S)}₄: $\begin{matrix} {{{N_{L}^{T}\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & L & 0 & 0 \\ 0 & Q_{3} & 0 & 0 & S_{4} & 0 \\ 0 & 0 & {{- \gamma}\; I} & 0 & 0 & 0 \\ L & 0 & 0 & 0 & 0 & 0 \\ 0 & S_{4}^{T} & 0 & 0 & R_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma^{- 1}I} \end{bmatrix}}{\quad{{\begin{bmatrix} I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \\ A & B_{f\; 1} & B_{f\; 2} \\ C_{f\; 1} & D_{f\; 11} & D_{f\; 12} \\ 0 & 0 & D_{22} \end{bmatrix}N_{L}} < 0}}} & (15) \\ {{{N_{J}^{T}\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}}^{T}\begin{bmatrix} 0 & 0 & 0 & J & 0 & 0 \\ 0 & {\overset{\sim}{Q}}_{3} & 0 & 0 & {\overset{\sim}{S}}_{4} & 0 \\ 0 & 0 & {{- \gamma^{- 1}}\; I} & 0 & 0 & 0 \\ J & 0 & 0 & 0 & 0 & 0 \\ 0 & {\overset{\sim}{S}}_{4}^{T} & 0 & 0 & {\overset{\sim}{R}}_{3} & 0 \\ 0 & 0 & 0 & 0 & 0 & {\gamma \; I} \end{bmatrix}}{\quad{{\begin{bmatrix} {- A^{T}} & {- C_{f\; 1}^{T}} & 0 \\ {- B_{f\; 1}^{T}} & {- D_{f\; 11}^{T}} & 0 \\ {- B_{f\; 2}^{T}} & {- D_{f\; 12}^{T}} & {- D_{22}^{T}} \\ I & 0 & 0 \\ 0 & I & 0 \\ 0 & 0 & I \end{bmatrix}N_{J}} > 0}}} & (16) \\ {\mspace{79mu} {\begin{bmatrix} J & I \\ I & L \end{bmatrix} > 0}} & (17) \\ {\mspace{79mu} {{R > 0},{Q = {- R}},{{S + S^{T}} = 0}}} & (18) \end{matrix}$ wherein N_(L) and N_(J) are respectively the bases of the nuclear spaces of [C₃ D₃₁ D₃₂] and [0 D₁₃ ^(T) D₂₃ ^(T)]; step 3.5: further, solving X in the formula (17) according to a solving result of the step 3.4; $\begin{matrix} {{X\begin{bmatrix} J & I \\ W^{T} & 0 \end{bmatrix}} = \begin{bmatrix} I & L \\ 0 & V^{T} \end{bmatrix}} & (17) \end{matrix}$ solving P according to P{tilde over (P)}=I; step 3.6: solving the following LMIs to obtain an estimation matrix Γ of the fault estimator: $\begin{matrix} {\mspace{79mu} {{{\Psi + {{\overset{\_}{P}}^{T}\Gamma^{T}{\overset{\_}{Q}}_{X}} + {{\overset{\_}{Q}}_{X}^{T}\Gamma \; \overset{\_}{P}}} < 0}{{{wherein}\mspace{14mu} \Psi} = \left\lbrack \begin{matrix} {{A_{0}^{T}X} + {XA}_{0}} & {{XB}_{01} + {C_{01}^{T}S^{T}}} & {XB}_{02} & C_{01}^{T} & C_{02}^{T} \\ {{SC}_{01} + {B_{01}^{T}X^{T}}} & {Q + {D_{01}^{T}S^{T}} + {SD}_{01}} & {SD}_{02} & D_{01}^{T} & D_{03}^{T} \\ {B_{02}^{T}X^{T}} & {D_{02}^{T}S^{T}} & {{- \gamma}\; I} & D_{02}^{T} & D_{04}^{T} \\ C_{1} & D_{01} & D_{02} & {- \overset{\sim}{R}} & 0 \\ C_{02} & D_{03} & D_{4} & 0 & {{- \gamma}\; I} \end{matrix} \right\rbrack}\mspace{20mu} {{\overset{\_}{P} = \begin{bmatrix} T_{2} & T_{3} & T_{4} & 0 & 0 \end{bmatrix}},{{\overset{\_}{Q}}_{X} = \begin{bmatrix} {T_{1}^{T}X} & {T_{5}^{T}S^{T}} & 0 & T_{5}^{T} & T_{6}^{T} \end{bmatrix}}}}} & (19) \end{matrix}$ further, computing a coefficient matrix of the fault estimator: $\begin{matrix} {\begin{bmatrix} {A_{E}(\lambda)} & {B_{E}(\lambda)} \\ {C_{E}(\lambda)} & {D_{E}(\lambda)} \end{bmatrix} = {\begin{bmatrix} A_{e} & B_{e\; 1} \\ C_{e\; 1} & D_{e\; 11} \end{bmatrix} + {\quad{\begin{bmatrix} B_{e\; 2} \\ D_{e\; 12} \end{bmatrix}{{\Lambda \left( {I - {D_{e\; 22}\Lambda}} \right)}^{- 1}\begin{bmatrix} C_{e\; 2} & D_{e\; 21} \end{bmatrix}}}}}} & (20) \end{matrix}$ step 4: designing an active fault tolerant controller of a turbofan engine based on a virtual actuator according to a fault estimation result; and without redesigning the controller, making the control system stable and obtaining a control effect similar to that of the system without fault; step 4.1: considering the system with fault of the turbofan engine; and when the sensor and actuator faults exist, designing the virtual actuator based on a reconfiguration principle, with a state space model representation of a reconfigured system as follows: $\begin{matrix} \left\{ {{{\begin{matrix} {\begin{bmatrix} {\overset{.}{\overset{\_}{x}}}_{f} \\ {\overset{.}{x}}_{\Delta} \end{bmatrix} = {{\begin{bmatrix} {\overset{\_}{A}(\lambda)} & {{{\overset{\_}{B}}_{2\; f}(\lambda)}{C_{\Delta}(\lambda)}} \\ 0 & {A_{\Delta}(\lambda)} \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}} + {\begin{bmatrix} {\overset{\_}{B}}_{1} \\ 0 \end{bmatrix}\overset{\_}{w}} + {\begin{bmatrix} {{{\overset{\_}{B}}_{2f}(\lambda)}{D_{\Delta}(\lambda)}} \\ {B_{\Delta}(\lambda)} \end{bmatrix}u_{c}}}} \\ {z_{re} = {{\begin{bmatrix} {\overset{\_}{C}}_{1} & 0 \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}} + {{\overset{\_}{D}}_{11}\overset{\_}{w}}}} \\ {x_{c} = {\begin{bmatrix} I & I \end{bmatrix}\begin{bmatrix} {\overset{\_}{x}}_{f} \\ x_{\Delta} \end{bmatrix}}} \end{matrix}{wherein}\mspace{14mu} x_{f}} = \begin{bmatrix} x_{f} \\ x_{ef} \end{bmatrix}};{x_{ef} = {{\int_{0}^{t}{{e_{f}(s)}{ds}}} = {\int_{0}^{t}{\left( {{y_{f}(s)} - {y_{r}(s)}} \right){ds}}}}};} \right. & (21) \end{matrix}$ x_(Δ) is a state variable of the virtual actuator; ${{{\overset{\_}{B}}_{2f}(\lambda)} = \begin{bmatrix} {B_{f}(\lambda)} \\ 0 \end{bmatrix}};{{A_{\Delta}(\lambda)} = {{\overset{\_}{A}(\lambda)} - {{{\overset{\_}{B}}_{2f}(\lambda)}{M(\lambda)}}}};$ ${{B_{\Delta}(\lambda)} = {{B_{2}(\lambda)} - {{{\overset{\_}{B}}_{2f}(\lambda)}{N(\lambda)}}}};{\overset{\_}{w} = \begin{bmatrix} d \\ y_{r} \end{bmatrix}};{{C_{\Delta}(\lambda)} = {M(\lambda)}};$ ${{{D_{\Delta}(\lambda)} = {N(\lambda)}};{{\overset{\_}{C}}_{1} = \begin{bmatrix} C & 0 \\ 0 & I \end{bmatrix}};{{\overset{\_}{D}}_{11} = \begin{bmatrix} G & {- I} \\ 0 & 0 \end{bmatrix}}},{{x_{c} = {x_{\Delta} + {\overset{\_}{x}}_{f}}};}$ z_(re) is a controlled output of the reconfigured system; M(λ) and N(λ) are to-be-solved matrices in an active fault tolerant control law; solving positive definite matrices X_(v), Y₁ and Y₂ according to LMIs combined by (22)-(24); $\begin{matrix} {{{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} + {X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}} + {2\; \rho \; X_{v}}} < 0} & (22) \\ {\begin{bmatrix} {- {rX}_{v}} & {{qX}_{c} + {{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \\ * & {- {rX}_{v}} \end{bmatrix} < 0} & (23) \\ {\begin{bmatrix} {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} & {{\cos (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} -} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \\ {{\cos (\theta)}\begin{pmatrix} {{X_{v}^{T}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}{\overset{\_}{B}}_{2f_{i}}^{T}} -} \\ {{{\overset{\_}{A}}_{i}X_{v}^{T}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}}} \end{pmatrix}} & {{\sin (\theta)}\begin{pmatrix} {{{\overset{\_}{A}}_{i}X_{v}} - {{\overset{\_}{B}}_{2f_{i}}Y_{i}} +} \\ {{X_{v}{\overset{\_}{A}}_{i}^{T}} - {Y_{i}^{T}{\overset{\_}{B}}_{2f_{i}}^{T}}} \end{pmatrix}} \end{bmatrix} < 0} & (24) \end{matrix}$ wherein i=1,2; ρ is a minimum decay rate of an LMI region; r is a radius of the LMI region; q is a center of a circle; θ is an intersection angle of close loop poles and a transverse axis in the LMI region; step 4.2: obtaining a matrix M_(i) according to Y_(i)=M_(i)X_(v); step 4.3: computing ${{N(\lambda)} = {{\sum\limits_{i = 1}^{2}{\alpha_{i}N_{i}}} = {\sum\limits_{i = 1}^{2}{\alpha_{i}{\overset{\_}{B}}_{2f_{i}}^{+}{\overset{\_}{B}}_{2_{i}}}}}},$ wherein B _(2f) _(i) ⁺ represents pseudo inverse of B _(2f) _(i) ; step 4.4: computing a system matrix; A _(Δ)(λ)=Ā(λ)− B _(2f)(λ)M(λ), B _(Δ)(λ)= B ₂(λ)− B _(2f)(λ) C _(Δ)(λ)=M(λ), D _(Δ)(λ)=N(λ) constructing a state space equation and a control law of the active fault tolerant controller: $\begin{matrix} \left\{ {\begin{matrix} {{\overset{.}{x}}_{\Delta} = {{{A_{\Delta}(\lambda)}x_{\Delta}} + {{B_{\Delta}(\lambda)}u_{c}}}} \\ {u_{f} = {{{C_{\Delta}(\lambda)}x_{\Delta}} + {{D_{\Delta}(\lambda)}u_{c}} - {{\overset{\_}{B}}_{2f}^{- 1}{\overset{\_}{F}(\lambda)}\hat{f}}}} \end{matrix}.} \right. & (25) \end{matrix}$ 